SpringBoot 日志脱敏,开源组件太强了! 您所在的位置:网站首页 springboot 数据脱敏 SpringBoot 日志脱敏,开源组件太强了!

SpringBoot 日志脱敏,开源组件太强了!

2024-07-12 12:23| 来源: 网络整理| 查看: 265

在我们书写代码的时候,会书写许多日志代码,但是有些敏感数据是需要进行安全脱敏处理的。

对于日志脱敏的方式有很多,常见的有①使用conversionRule标签,继承MessageConverter②书写一个脱敏工具类,在打印日志的时候对特定特字段进行脱敏返回。

两种方式各有优缺点:

第一种方式需要修改代码,不符合开闭原则。

第二种方式,需要在日志方法的参数进行脱敏,对原生日志有入侵行为。

自定义脱敏组件(slf4j+logback)

一个项目在书写了很多打印日志的代码,但是后面有了脱敏需求,如果我们去手动改动代码,会花费大量时间。如果引入本组件,完成配置即可轻松完成脱敏。(仅需三步可轻松配置)

一、自定义脱敏组件 - 脱敏效果演示

9f3baf62a26634fbcf2f8e94aff8613d.png

ed6cc50f9b8a2908df5dd58d51860f77.png

二、自定义脱敏组件 - 使用方式 1、引入Jar包依赖

前提是你将Jar包打入本地仓库,Jar包地址见后文。

    pers.liuchengyin     logback-desensitization     1.0.0 2、替换日志文件配置类(logback.xml)

日志打印方式都只需要替换成脱敏的类即可,如果你的业务不需要,则无需替换。

①ConsoleAppender - 控制台脱敏 // 原类 ch.qos.logback.core.ConsoleAppender // 替换类 pers.liuchengyin.logbackadvice.LcyConsoleAppender ②RollingFileAppender - 滚动文件 // 原类 ch.qos.logback.core.rolling.RollingFileAppender // 替换类 pers.liuchengyin.logbackadvice.LcyRollingFileAppender ③FileAppender - 文件 // 原类 ch.qos.logback.core.FileAppender // 替换类 pers.liuchengyin.logbackadvice.LcyFileAppender 替换示例:                           ${CONSOLE_LOG_PATTERN}               3、添加脱敏配置文件(logback-desensitize.yml)

该配置文件应该放在resources文件下

a53e339490e149758ebdfa85f49897a2.png

三、自定义脱敏组件 - 脱敏规范 1、支持数据类型

八大基本类型及其包装类型、Map、List、业务里的Pojo对象、List、JSON字符串。面试宝典:https://www.yoodb.com 即将上线。

注:在配置文件中配置的时候,只需要配置对象里的属性值就行。

2、不支持的数据类型

List,因为不知道脱敏的数据源具体是哪一个。

3、匹配规则

key + 分割符 + value,目前仅支持冒号(:)和等号(=),示例如下:

log.info("your email:{}, your phone:{}", "[email protected]","15310763497"); log.info("your email={}, your cellphone={}", "[email protected]","15310763497");

key:定义了对应需要脱敏的关键字,如上诉的email、phone等以及业务对象中的字段、Map中的Key、JSON中的Key

value:需要脱敏的值,如上诉的[email protected]、15310763497。

4、日志规范

建议书写日志的时候尽量规范,对于key为中文的是没有办法脱敏的,规范程度可以见脱敏效果演示里的代码。

四、logback-desensitize.yml配置说明 # 日志脱敏,公众 号Java精选 log-desensitize:   # 是否忽略大小写匹配,默认为true   ignore: true   # 是否开启脱敏,默认为false   open: true   # pattern下的key/value为固定脱敏规则   pattern:     # 邮箱 - @前第4-7位脱敏     email: "@>(4,7)"     # qq邮箱 - @后1-3位脱敏     qqemail: "@(4,7)",@为脱敏标志,>表示其为结束节点,表示对@之前的进行脱敏,@


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有